#include <stdio.h>
#include <pcap.h>
#include <time.h>
#include <stdint.h>
#include <pthread.h>
#include <stdlib.h>
#include "p.h"
#include "s.h"

#define SNAP_LEN 1518     // 定义数据包捕获的最大长度
#define BUFFER_SIZE 1024  // 定义缓冲区大小

// 声明线程函数，用于捕获数据包
void *packet_capture_thread(void *arg);
// 声明数据包处理函数，用于处理捕获到的数据包
void packet_handle(uint8_t *user_data,const struct pcap_pkthdr *pkthdr,const uint8_t *packet);

int main(){
    pthread_t thread_id;
    TrafficStats stats;
    init_traffic_stats(&stats);//；；；初始化

    //创建线程进行抓包和统计
    if(pthread_creatt(&thread_id,NULL,packet_capture_thread,&stats) != 0) {
        perror("Feiled to creat thread!");
        return 1;
    }

    // 等待线程结束
    // pthread_join 函数用于等待指定线程结束
    // thread_id：要等待的线程 ID
    // NULL：不获取线程的返回值
    if (pthread_join(thread_id, NULL) != 0) {
        perror("Failed to join thread");  // 若等待线程结束失败，输出错误信息
        return 1;  // 程序异常退出
    }
}